/**
 * 
 */
package com.cplsystems.incidencias.vm.panelControl.utils;

import java.util.ArrayList;
import java.util.List;

import com.cplsystems.incidencias.app.MetaData;
import com.cplsystems.incidencias.app.utils.IncidenciasConstants;
import com.cplsystems.incidencias.app.utils.IncidenciasUtils;
import com.cplsystems.incidencias.business.Categoria;
import com.cplsystems.incidencias.business.Organizacion;
import com.cplsystems.incidencias.business.OrganizacionCategoria;
import com.cplsystems.incidencias.business.OrganizacionTipoPersonal;
import com.cplsystems.incidencias.business.Sucursal;
import com.cplsystems.incidencias.business.TipoPersonal;

/**
 * @author César Palalía López (csr.plz@aisa-automation.com)
 * 
 */
public class PanelControlVariables extends MetaData {

	private static final long serialVersionUID = 3699776966875406698L;
	protected List<Sucursal> sucursales;
	protected Sucursal sucursalSeleccionada;

	protected List<OrganizacionCategoria> categorias;
	protected OrganizacionCategoria categoriaSeleccionada;
	protected OrganizacionCategoria nuevaOrganizacionCategoria;

	protected List<OrganizacionTipoPersonal> organizacionTipoPersonal;
	protected OrganizacionTipoPersonal organizacionTipoPersonalSeleccionado;
	protected OrganizacionTipoPersonal nuevaOrganizacionTipoPersonal;

	protected boolean activarNuevaSucursal;

	public void init() {
		Organizacion organizacion = (Organizacion) sessionUtils
				.getFromSession(IncidenciasUtils
						.encrypt(IncidenciasConstants.FIRMA));
		sucursales = sucursalService.getSucursalesByOrganizacion(organizacion);
		sucursalSeleccionada = sucursales != null ? sucursales.get(0)
				: new Sucursal();

		categorias = organizacionCategoriaService
				.getCategoriaByOrganizacion(organizacion);
		categoriaSeleccionada = categorias != null ? categorias.get(0)
				: new OrganizacionCategoria();

		organizacionTipoPersonal = organizacionTipoPersonalService
				.getTipoPersonalByOrganizacion(organizacion);
		organizacionTipoPersonalSeleccionado = organizacionTipoPersonal != null ? organizacionTipoPersonal
				.get(0) : null;

		nuevaOrganizacionCategoria = new OrganizacionCategoria();
		nuevaOrganizacionCategoria.setCategoria(new Categoria());
		nuevaOrganizacionCategoria.setOrganizacion(organizacion);

		nuevaOrganizacionTipoPersonal = new OrganizacionTipoPersonal();
		nuevaOrganizacionTipoPersonal.setOrganizacion(organizacion);
		nuevaOrganizacionTipoPersonal.setTipoPersonal(new TipoPersonal());

		if (sucursales == null) {
			sucursales = new ArrayList<Sucursal>();
		}

		if (categorias == null) {
			categorias = new ArrayList<OrganizacionCategoria>();
		}

		if (organizacionTipoPersonal == null) {
			organizacionTipoPersonal = new ArrayList<OrganizacionTipoPersonal>();
		}
	}

	public List<Sucursal> getSucursales() {
		return sucursales;
	}

	public void setSucursales(List<Sucursal> sucursales) {
		this.sucursales = sucursales;
	}

	public Sucursal getSucursalSeleccionada() {
		return sucursalSeleccionada;
	}

	public void setSucursalSeleccionada(Sucursal sucursalSeleccionada) {
		this.sucursalSeleccionada = sucursalSeleccionada;
	}

	public List<OrganizacionCategoria> getCategorias() {
		return categorias;
	}

	public void setCategorias(List<OrganizacionCategoria> categorias) {
		this.categorias = categorias;
	}

	public OrganizacionCategoria getCategoriaSeleccionada() {
		return categoriaSeleccionada;
	}

	public void setCategoriaSeleccionada(
			OrganizacionCategoria categoriaSeleccionada) {
		this.categoriaSeleccionada = categoriaSeleccionada;
	}

	public List<OrganizacionTipoPersonal> getOrganizacionTipoPersonal() {
		return organizacionTipoPersonal;
	}

	public void setOrganizacionTipoPersonal(
			List<OrganizacionTipoPersonal> organizacionTipoPersonal) {
		this.organizacionTipoPersonal = organizacionTipoPersonal;
	}

	public OrganizacionTipoPersonal getOrganizacionTipoPersonalSeleccionado() {
		return organizacionTipoPersonalSeleccionado;
	}

	public void setOrganizacionTipoPersonalSeleccionado(
			OrganizacionTipoPersonal organizacionTipoPersonalSeleccionado) {
		this.organizacionTipoPersonalSeleccionado = organizacionTipoPersonalSeleccionado;
	}

	public OrganizacionCategoria getNuevaOrganizacionCategoria() {
		return nuevaOrganizacionCategoria;
	}

	public void setNuevaOrganizacionCategoria(
			OrganizacionCategoria nuevaOrganizacionCategoria) {
		this.nuevaOrganizacionCategoria = nuevaOrganizacionCategoria;
	}

	public OrganizacionTipoPersonal getNuevaOrganizacionTipoPersonal() {
		return nuevaOrganizacionTipoPersonal;
	}

	public void setNuevaOrganizacionTipoPersonal(
			OrganizacionTipoPersonal nuevaOrganizacionTipoPersonal) {
		this.nuevaOrganizacionTipoPersonal = nuevaOrganizacionTipoPersonal;
	}

	public boolean isActivarNuevaSucursal() {
		return activarNuevaSucursal;
	}

	public void setActivarNuevaSucursal(boolean activarNuevaSucursal) {
		this.activarNuevaSucursal = activarNuevaSucursal;
	}

}
